package com.xigua._双指针;

import java.util.Arrays;

/**
 * @author LiRongHua
 * @Title: ${file_name}
 * @Package ${package_name}
 * @Description: 给你一个整数数组 nums 和一个整数 k ，请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。
 * @date 2022/5/513:45
 */
public class _713_乘积小于K的子数组 {

    public static void main(String[] args) {
        System.out.println(numSubarrayProductLessThanK(new int[]{1, 1, 1}, 1));
    }

    // 10  5  2  6
    public static int numSubarrayProductLessThanK(int[] nums, int k) {
        if (k == 0 ) return 0;
        int n = nums.length;
        int count = 0;
        int prod = 1;
        int i = 0;
        for (int j = 0; j < n; j++) {
            prod *=nums[j];
            while (i<=j && prod >= k){
                prod /=nums[i++];
            }
            count += j-i+1;
        }
        return count;

    }

}
